<?php 
ini_set('date.timezone','Asia/Shanghai');
require_once(__DIR__ . "/lib/WxPay.Api.php");
require_once(__DIR__ . "/wpay/WxPay.JsApiPay.php");
require_once(__DIR__ . "/lib/WxPay.Notify.php");

/**
 * 
 */
class Callback extends WxPayNotify
{
    private $data;

    //查询订单
    public function Queryorder($transaction_id)
    {
        $input = new WxPayOrderQuery();
        $input->SetTransaction_id($transaction_id);
        $result = WxPayApi::orderQuery($input); 
        // log_message('info',"query:" . json_encode($result));
        if(array_key_exists("return_code", $result)
            && array_key_exists("result_code", $result)
            && $result["return_code"] == "SUCCESS"
            && $result["result_code"] == "SUCCESS")
        {
            return true;
        }
        return false;
    }

    //重写回调处理函数
    public function NotifyProcess($data, &$msg)
    {
        // log_message('info',"call back3:" . json_encode($data));
        $notfiyOutput = array();

        if(!array_key_exists("transaction_id", $data)){
            $msg = "输入参数不正确";
            // log_message('info',"NotifyProcess，err:" .$msg);
            return false;
        }
        //查询订单，判断订单真实性
        if(!$this->Queryorder($data["transaction_id"])){
            $msg = "订单查询失败";
            // log_message('info',"NotifyProcess，err:" .$msg);
            return false;
        }
        //业务
        $this->setDataArr($data);
        // log_message('info',"NotifyProcess，setDataArr:");
        return true;
    }

    /**
     * 获取业务订单号
     */
    private function setDataArr($data){
        $this->data = $data;
    }

    /**
     * 获取业务订单号
     */
    public function getDataArr(){
        return $this->data;
    }
}
 
  

